var BOMMADMDevControl = function(devCtlId){
	//alert(devCtlId);
	this.BOMMADMDevControlID=devCtlId;
	this.Ocx = function(){
		//alert(this.BOMMADMDevControlID);
		var obj =  document.getElementById(this.BOMMADMDevControlID);
		if(obj == undefined || obj == null){
			alert("BOMMADMDevControl.ocx未加载");
			return null;
		}else{
			return obj;
		}
	};
};

BOMMADMDevControl.prototype.getVersion = function(){
	return this.Ocx().Version;
}

/*--------------------------盖章模块--------------------------*/
/**
 *long OpenStamp(long p_lTimeOut);
 *功能：通过串口打开盖章机设备
 *参数：p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：WFS_SUCCESS表示成功,STP_FAILD表示失败，*/
BOMMADMDevControl.prototype.OpenStamp = function(json){
	return this.Ocx().OpenStamp(json.p_lTimeOut);
}

/**
 *long CloseStamp(long p_lTimeOut);
 *功能：通过串口关闭盖章机设备
 *参数： p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：WFS_SUCCESS表示成功,STP_FAILD表示失败。 */
BOMMADMDevControl.prototype.CloseStamp = function(json){
	return this.Ocx().CloseStamp(json.p_lTimeOut);
}

/**
 *long InitStamp(long p_lTimeOut);
 *功能：初始化盖章机设备，使盖章机达到就绪状态
      该方法与ResetStamp的区别是，该方法不仅清除盖章机中残留的任务和错误标志，同时会测试盖章机走纸、公章等功能是否正常；如果不正常则返回失败。
 *参数：p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：WFS_SUCCESS表示成功,STP_FAILD表示失败。
 */
BOMMADMDevControl.prototype.InitStamp = function(json){
	return this.Ocx().InitStamp(json.p_lTimeOut);
}

/**
 *InitStamp的异步版本
 */
BOMMADMDevControl.prototype.InitStampAsyn = function(json){
	return this.Ocx().InitStampAsyn(json.p_lTimeOut);
}

/**
 *long ResetStamp(long p_lTimeOut);
 *功能：重置盖章机，清除盖章机任务、错误状态标志等(不测试盖章状态、不进行重新连接串口)。
 *参数：p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：WFS_SUCCESS表示成功,STP_FAILD表示失败。

 */
BOMMADMDevControl.prototype.ResetStamp = function(json){
	return this.Ocx().ResetStamp(json.p_lTimeOut);
}

/**
 *ResetStamp的异步版本
 */
BOMMADMDevControl.prototype.ResetStampAsyn = function(json){
	return this.Ocx().ResetStamp(json.p_lTimeOut);
}

/**
 *long ClearCurrentStamped(long p_lTimeOut);
 *功能：清除当前印章的盖章总次数，用于对盖章机进行印章(印油)更换时。
 *参数：p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：WFS_SUCCESS表示成功,STP_FAILD表示失败。
*/
BOMMADMDevControl.prototype.ClearCurrentStamped = function(json){
	return this.Ocx().ClearCurrentStamped(json.p_lTimeOut);
}

/**
 *long TestStampRun(long p_lTimeOut);
 *功能：测试盖章机盖章动作是否能正常完成，通常用于设备监控
 *参数：p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *WFS_SUCCESS表示成功,STP_FAILD表示失败。
*/
BOMMADMDevControl.prototype.TestStampRun = function(json){
	return this.Ocx().TestStampRun(json.p_lTimeOut);
}

/**
 *long TestPaperRun(long p_lTimeOut);
 *功能：测试盖章机走纸动作是否能正常完成，通常用于设备监控
 *参数：p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：WFS_SUCCESS表示成功,STP_FAILD表示失败。
*/
BOMMADMDevControl.prototype.TestPaperRun = function(json){
	return this.Ocx().TestPaperRun(json.p_lTimeOut);
}

/**
 *long setStampPosition(String p_szPosition,long p_lTimeOut);
 *功能：设置盖章任务
 *参数：p_szPosition	盖章位置描述串
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：WFS_SUCCESS表示成功,STP_FAILD表示失败。
*/
BOMMADMDevControl.prototype.SetStampPosition = function(json){
	return this.Ocx().SetStampPosition(json.p_szPosition,json.p_lTimeOut);
}

/**
 *String getStampPosition(String p_szPosition, long p_lTimeOut);
 *功能：获取盖章任务
 *参数：p_szPosition	盖章位置描述串
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回： WFS_SUCCESS表示成功,STP_FAILD表示失败。
*/
BOMMADMDevControl.prototype.GetStampPosition = function(json){
	return this.Ocx().GetStampPosition(json.p_lTimeOut);
}


/**
 *String getCapabilitiesStamp(String p_CapsKey, long p_lTimeOut);
 *功能：获取盖章机能力
 *参数：p_CapsKey	1.1中“成员名“列出的设备能力的键的名称
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回： p_CapsKey对应的的设备能力的值,“CAPS_ERROR“,表示获取失败
*/
BOMMADMDevControl.prototype.GetCapabilitiesStamp = function(json){
	return this.Ocx().GetCapabilitiesStamp(json.p_CapsKey,json.p_lTimeOut);
}

/**
 *String GetBatchCapabilitiesStamp(String p_BatchCapsKey, long p_lTimeOut);
 *功能：批量获取盖章机的设备能力，一批次最多可以获取5个设备能力
 *参数：p_BatchCapsKey	1.1中的“成员名”中列出的设备能力的键的名称的组合，最多为五个，每个键名称之间用^隔开：如^键名称1^键名称2……^键名称5
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回： p_ BatchCapsKey键名称组合对应的批量设备能力的值，“CAPS_ERROR“,表示获取失败，值的格式为：^键值1^键值2……^键值5
*/
BOMMADMDevControl.prototype.GetBatchCapabilitiesStamp = function(json){
	return this.Ocx().GetBatchCapabilitiesStamp(json.p_BatchCapsKey,json.p_lTimeOut);
}

/**
 *String getStatusStamp(String p_StatusKey, long p_lTimeOut);
 *功能：获取盖章机状态
 *参数：p_StatusKey	1.3中“成员名“列出的设备状态的键的名称
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：p_StatusKey对应的设备状态的值，“STATUS_ERROR“,表示获取失败。
*/
BOMMADMDevControl.prototype.GetStatusStamp = function(json){
	return this.Ocx().GetStatusStamp(json.p_StatusKey,json.p_lTimeOut);
}

/**
 *String GetBatchStatusStamp(String p_BatchStatusKey, long p_lTimeOut);
 *功能：批量获取盖章机的状态，一批次最多可以获取5个设备状态
 *参数：p_BatchStatusKey	1.3中“成员名“列出的设备状态的键的名称的组合.最多为五个，每个键名称之间用^隔开：如^键名称1^键名称2……^键名称5
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：p_ BatchStatusKey键名称组合对应的批量设备状态的值，“CAPS_ERROR“,表示获取失败，值的格式为：^键值1^键值2……^键值5。
*/
BOMMADMDevControl.prototype.GetBatchStatusStamp = function(json){
	return this.Ocx().GetBatchStatusStamp(json.p_BatchStatusKey,json.p_lTimeOut);
}


/*--------------------------支票收取机--------------------------*/
/**
 *String ReaderGetCapabilities(String r_CapsKey, long r_lTimeOut);
 *功能：获取支票阅读机的设备能力
 *参数：r_CapsKey	1.1中的“成员名”中列出的设备能力Capabilities的键的名称。
 *r_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：r_CapsKey对应的设备能力的值，“CAPS_ERROR“,表示获取失败。
*/
BOMMADMDevControl.prototype.ReaderGetCapabilities = function(json){
	return this.Ocx().ReaderGetCapabilities(json.r_CapsKey,json.r_lTimeOut);
}

/**
 *String ReaderGetBatchCapabilities(String r_BatchCapsKey, long r_lTimeOut);
 *功能：批量获取支票阅读机的设备能力，一批次最多可以获取5个设备能力
 *参数：r_BatchCapsKey	1.1中的“成员名”中列出的设备能力的键的名称的组合，最多为五个，每个键名称之间用^隔开：如^键名称1^键名称2……^键名称5
 *r_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：r_ BatchCapsKey键名称组合对应的批量设备能力的值，“CAPS_ERROR“,表示获取失败，正确的值为：^键值1^键值2……^键值5。
*/
BOMMADMDevControl.prototype.ReaderGetBatchCapabilities = function(json){
	return this.Ocx().ReaderGetBatchCapabilities(json.r_BatchCapsKey,json.r_lTimeOut);
}


/**
 *String ReaderGetStatus(String r_StatusKey, long r_lTimeOut);
 *功能：获取支票阅读机的状态
 *参数：r_StatusKey	1.2中“成员名“列出的设备状态的键的名称
 *r_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：r_StatusKey对应的设备状态的值，“STATUS_ERROR“,表示获取失败。
*/
BOMMADMDevControl.prototype.ReaderGetStatus = function(json){
	return this.Ocx().ReaderGetStatus(json.r_StatusKey,json.r_lTimeOut);
}

/**
 *String ReaderGetBatchStatus(String r_BatchStatusKey, long r_lTimeOut);
 *功能：批量获取支票阅读机的状态，一批次最多可以获取5个设备状态
 *参数：r_BatchStatusKey	1.2中“成员名“列出的设备状态的键的名称的组合.最多为五个，每个键名称之间用^隔开：如^键名称1^键名称2……^键名称5
 *r_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：r_ BatchStatusKey键名称组合对应的批量设备状态的值，“CAPS_ERROR“,表示获取失败，正确的值为：^键值1^键值2……^键值5
*/
BOMMADMDevControl.prototype.ReaderGetBatchStatus = function(json){
	return this.Ocx().ReaderGetBatchStatus(json.r_BatchStatusKey,json.r_lTimeOut);
}

/**
 *long ReaderOninit(long r_lTimeOut);
 *功能：初始化支票阅读机
 *参数：r_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：READER_SUCCESS表示成功, READER_FAILD表示失败

*/
BOMMADMDevControl.prototype.ReaderOninit = function(json){
	return this.Ocx().ReaderOninit(json.r_lTimeOut);
}

/**
 *long ReaderReset(long r_lTimeOut);
 *功能：初始化支票阅读机
 *参数：r_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：READER_SUCCESS表示成功, READER_FAILD表示失败。

*/
BOMMADMDevControl.prototype.ReaderReset = function(json){
	return this.Ocx().ReaderReset(json.r_lTimeOut);
}

/**
 *String ReaderReadForm (String r_lpReaderForm,String r_FormKey,long r_lTimeOut);
 *功能：设置支票阅读机的form，form信息中的内容为控制设备执行的操作。
 *参数： r_lpReaderForm	Form名
 * r_FormKey	Form中的制定的键的名称
 * r_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回： r_ FormKey中对应的键的值。

FROM中的键和值的定义和取值如下所示：
FormName:
Form名称。
FrontsideCamera：
是否扫面票据正面,值为“1” 表示扫描，“0”表示不扫描
RearsideCamera：
是否扫面票据背面 值为“1” 表示扫描，“0”表示不扫描
DocumentWidth：
票据的最大宽度，值为字符串
DocumentHigh：
票据的最大高度，值为字符串
FrontsizeEndorsement:
是否正正面打印背书，值为“1”打印，“0”不打印
RearsideEndorsement：
是否在背面打印背书，值为“1”打印，“0”不打印
Stamp：
是否盖章，值为“1”盖章，“0”不盖章
MICRReader：
是否识读MICR， 值为“1”识读，“0”不识读
RejectMode:
票据退出方式：值为“1” 表示在进票口退出，“0”表示从退票口退出。
EjectTimeout:
设置插票的超时时间。值为字符串，如“1000”。
MaxCheckNum：
一批放置的票据最大数量。值为字符串，如“20”


*/
BOMMADMDevControl.prototype.ReaderReadForm = function(json){
	return this.Ocx().ReaderReadForm(json.r_lpReaderForm,json.r_FormKey,json.r_lTimeOut);
}

/**
 *long ReaderSetForm(String r_bstrFormName,String r_ FormKey,String r_FormValue,long r_lTimeOut);
 *功能：设置支票阅读机的form，form信息中的内容为控制设备执行的操作。
 *参数：r_bstrFormName	支票阅读机form名
 *  r_ FormKey	Form中元素的键的名称
 *  r_FormValue	Form中元素的键的值
 * r_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回： READER_SUCCESS表示成功, READER_FAILD表示失败。

*/
BOMMADMDevControl.prototype.ReaderSetForm = function(json){
	return this.Ocx().ReaderSetForm(json.r_bstrFormName,json.r_FormKey,json.r_FormValue,json.r_lTimeOut);
}

/**
 *long ReaderProcessForm(String r_lpFormName,long r_lTimeOut);
 *功能：按照设备Form规定，处理票据。在调用前需要调用ReaderSetForm ()。
 *参数：r_lpFormName	Form名称
 * r_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：READER _SUCCESS表示成功, READER _FAILD表示设备故障，READER_OVER表示没有票据可以收取（票据已收取完成）
*/
BOMMADMDevControl.prototype.ReaderProcessForm = function(json){
	return this.Ocx().ReaderProcessForm(json.r_lpFormName,json.r_lTimeOut);
}

/** 参数r_bIsAccept原先是bool $$$$$$
 *long ReaderAcceptDoc(long r_bIsAccept,long r_lTimeOut);
 *功能：是否将票据存入票箱
 * r_bIsAccept	是否存入票箱1-存入  0-不存入
 * r_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：READER _SUCCESS表示成功, READER _FAILD表示失败。
*/
BOMMADMDevControl.prototype.ReaderAcceptDoc = function(json){
	return this.Ocx().ReaderAcceptDoc(json.r_bIsAccept,json.r_lTimeOut);
}

/**参数r_bDocReject原先是bool $$$$$$
 *long ReaderCancelJob(long r_bDocReject,long r_lTimeOut);
 *功能：取消目前的所执行的任务。
 *参数：r_bDocReject	1-表示正在处理中的票据退出0-表示处理中的数据回收
 * r_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：READER_SUCCESS表示成功,READER_FAILD表示失败。
*/
BOMMADMDevControl.prototype.ReaderCancelJob = function(json){
	return this.Ocx().ReaderCancelJob(json.r_bDocReject,json.r_lTimeOut);
}

/**
 *long ReaderTerminate(long r_lTimeOut);
 *功能：终止目前的程序，释放驱动资源。
 *r_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：READER_SUCCESS表示成功,READER_FAILD表示失败。
*/
BOMMADMDevControl.prototype.ReaderTerminate = function(json){
	return this.Ocx().ReaderTerminate(json.r_lTimeOut);
}

/**
 *long ReaderPutDoc(long r_lTimeOut);
 *功能：开启收票口闸门，放入票据
 *参数：r_lTimeOut	放票的超时时间，单位为ms；0表示永不超时
 *返回：READER_SUCCESS表示成功,READER_FAILD表示设备故障，READER_TIMEOUT放入票据超时。
*/
BOMMADMDevControl.prototype.ReaderPutDoc = function(json){
	return this.Ocx().ReaderPutDoc(json.r_lTimeOut);
}


/**
 *long ReaderRetractDoc(long r_lTimeOut);
 *功能：关闭退票口闸门，将票据回收至废票口注：调用ReaderAcceptDoc(FALSE, nTimeout)方法后调用此方法，首先将票据移到退票口，等待用户取走退回的票据。再关闭退票口。
 *参数：r_lTimeOut	放票的超时时间，单位为ms；0表示永不超时
 *返回：READER_SUCCESS表示成功,READER_FAILD表示设备故障。
*/
BOMMADMDevControl.prototype.ReaderRetractDoc = function(json){
	return this.Ocx().ReaderRetractDoc(json.r_lTimeOut);
}

/**
 *关闭进票口
 *函数原型
 *long ReaderCloseShutter (long r_lTimeOut);
 *参数
 *参数名	In/Out	含义
 *r_lTimeOut	In	超时时间，单位为ms；0表示永不超时
 *返回值
 *READER_SUCCESS表示成功,0
 *READER_FAILED表示设备故障, -1
 *READER_SHUTTER_BUSY表示进票口有票，无法关闭进票口。-13
*/
BOMMADMDevControl.prototype.ReaderCloseShutter  = function(json){
	return this.Ocx().ReaderCloseShutter (json.r_lTimeOut);
}

/*--------------------------回单打印模块--------------------------*/

/**
 *String GetCapabilities(String p_CapsKey, long p_lTimeOut);
 *功能：获取打印机能力
 *参数：p_CapsKey	1.1中的“成员名”中列出的设备能力的键的名称。
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：p_CapsKey对应的设备能力的值，“CAPS_ERROR“,表示获取失败。
*/
BOMMADMDevControl.prototype.GetCapabilities = function(json){
	return this.Ocx().GetCapabilities(json.p_CapsKey,json.p_lTimeOut);
}

/**
 *String GetBatchCapabilities(String p_BatchCapsKey, long p_lTimeOut);
 *功能：批量获取打印机的设备能力，一批次最多可以获取5个设备能力
 *参数：p_BatchCapsKey	1.1中的“成员名”中列出的设备能力的键的名称的组合，最多为五个，每个键名称之间用^隔开：如^键名称1^键名称2……^键名称5
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：p_ BatchCapsKey键名称组合对应的批量设备能力的值，“CAPS_ERROR“,表示获取失败，值的格式为：^键值1^键值2……^键值5
*/
BOMMADMDevControl.prototype.GetBatchCapabilities = function(json){
	return this.Ocx().GetBatchCapabilities(json.p_BatchCapsKey,json.p_lTimeOut);
}

/**
 *String GetStatus(String p_StatusKey, long p_lTimeOut);
 *功能：获取打印机状态
 *参数：p_StatusKey	1.2中“成员名“列出的设备状态的键的名称
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：p_StatusKey对应的设备状态的值，“STATUS_ERROR“,表示获取失败。
*/
BOMMADMDevControl.prototype.GetStatus = function(json){
	return this.Ocx().GetStatus(json.p_StatusKey,json.p_lTimeOut);
}

/**
 *String GetBatchStatus(String p_BatchStatusKey, long p_lTimeOut);
 *功能：批量获取打印机的状态，一批次最多可以获取5个设备状态
 *参数：p_BatchStatusKey	1.2中“成员名“列出的设备状态的键的名称的组合.最多为五个，每个键名称之间用^隔开：如^键名称1^键名称2……^键名称5
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：p_ BatchStatusKey键名称组合对应的批量设备状态的值，“CAPS_ERROR“,表示获取失败，值的格式为：^键值1^键值2……^键值5
*/
BOMMADMDevControl.prototype.GetBatchStatus = function(json){
	return this.Ocx().GetBatchStatus(json.p_BatchStatusKey,json.p_lTimeOut);
}

/**
 *long PrintForm(String p_lpFormName, long p_lTimeOut);
 *功能：按照设备Form规定，在各个域上打印内容。在调用前需要PrintFormSet()。
 *参数：p_lpFormName	Form名称
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：PNT_SUCCESS表示成功,PNT_FAILD表示失败。
*/
BOMMADMDevControl.prototype.PrintForm = function(json){
	return this.Ocx().PrintForm(json.p_lpFormName,json.p_lTimeOut);
}

/**
 *long PrintFormAsyn(String p_lpFormName, long p_lTimeOut);
 *功能：PrintForm的异步版本。请参考PrintForm的参数和返回值。
 *参数：p_lpFormName	Form名称
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：PNT_SUCCESS表示成功,PNT_FAILD表示失败。
*/
BOMMADMDevControl.prototype.PrintFormAsyn = function(json){
	return this.Ocx().PrintFormAsyn(json.plpFormName,json.p_lTimeOut);
}


/**
 *long PrintFormSet(String lpFormName,String p_FormKey, String p_FormVaule, long p_lTimeOut);
 *功能：设置打印Form数值
 *参数：lpFormName	Form名称
 * p_FormKey	Form中的项的键的名称
 * p_FormVaule	Form中的p_FormKey对应的value值
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：PNT_SUCCESS表示成功,PNT_FAILD表示失败。
*/
BOMMADMDevControl.prototype.PrintFormSet = function(json){
	return this.Ocx().PrintFormSet(json.lpFormName,json.p_FormKey,json.p_FormVaule,json.p_lTimeOut);
}

/**
 *String ReadForm(String p_bstrFormName, String p_FormKey,, long p_lTimeOut);
 *功能：读取选定的Form中的键的值。
 *参数：p_bstrFormName	使用的From名
 *p_FormKey	Form中的项的键的名称
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：p_FormKey代表的键的值  返回“FormKey_ERROR”代表获取失败。
*/
BOMMADMDevControl.prototype.ReadForm = function(json){
	return this.Ocx().ReadForm(json.p_bstrFormName,json.p_FormKey,json.p_lTimeOut);
}

/**
 *String ReadFormAsyn(String p_bstrFormName, String p_FormKey,, long p_lTimeOut);
 *功能：ReadForm的异步版本。请参考ReadForm的参数和返回值。
 *参数：p_bstrFormName	使用的From名
 *p_FormKey	Form中的项的键的名称
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：p_FormKey代表的键的值  返回“FormKey_ERROR”代表获取失败。
*/
BOMMADMDevControl.prototype.ReadFormAsyn = function(json){
	return this.Ocx().ReadFormAsyn(json.p_bstrFormName,json.p_FormKey,json.p_lTimeOut);
}

/**参数p_bResp原先是bool $$$$$$
 *long PrintRawData(String p_lpRawData, int p_bResp, String p_lpReturn, long p_lTimeOut);
 *功能：打印原始数据。
 *参数：p_lpRawData	传入打印机的数据
 * p_bResp	是否需要设备返回数据 1-需要 0-不需要
 * p_lpReturn	设备返回数据
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：PNT_SUCCESS表示成功,PNT_FAILD表示失败。
*/
BOMMADMDevControl.prototype.PrintRawData = function(json){
	return this.Ocx().PrintRawData(json.p_lpRawData,json.p_bResp,json.p_lpReturn,json.p_lTimeOut);
}

/**
 *long PrintString(String p_bstrData,long p_lTimeOut);
 *功能：打印字符串数据。
 *参数：p_bstrData	打印字符串的数据。
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：PNT_SUCCESS表示成功,PNT_FAILD表示失败。
*/
BOMMADMDevControl.prototype.PrintString = function(json){
	return this.Ocx().PrintString(json.p_bstrData,json.p_lTimeOut);
}

/**
 *long PrintStringAsyn(String p_bstrData,long p_lTimeOut);
 *功能：PrintString的异步版本，打印字符串数据。
 *参数：p_bstrData	打印字符串的数据。
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：PNT_SUCCESS表示成功,PNT_FAILD表示失败。
*/
BOMMADMDevControl.prototype.PrintStringAsyn = function(json){
	return this.Ocx().PrintStringAsyn(json.p_bstrData,json.p_lTimeOut);
}

/**
 *long PrinterReset(long p_lTimeOut);
 *功能：重置打印机恢复到一个正常状态。
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：PNT_SUCCESS表示成功,PNT_FAILD表示失败。
*/
BOMMADMDevControl.prototype.PrinterReset = function(json){
	return this.Ocx().PrinterReset(json.p_lTimeOut);
}

/**
 *long PrinterResetAsyn(long p_lTimeOut);
 *功能：PrinterReset的异步版本，重置打印机恢复到一个正常状态。
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：PNT_SUCCESS表示成功,PNT_FAILD表示失败。
*/
BOMMADMDevControl.prototype.PrinterResetAsyn = function(json){
	return this.Ocx().PrinterResetAsyn(json.pLTimeOut);
}


/**
 *long DispensePaper(long p_eppSrc,long p_lTimeOut);
 *功能：将打印纸移至打印机打印区域。
 *参数：p_eppSrc	使用打印纸。
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：PNT_SUCCESS表示成功,PNT_FAILD表示失败。
*/
BOMMADMDevControl.prototype.DispensePaper = function(json){
	return this.Ocx().DispensePaper(json.p_eppSrc,json.p_lTimeOut);
}

/**
 *long DispensePaperAsyn(long p_eppSrc,long p_lTimeOut);
 *功能：DispensePaper的异步版本，请参考DispensePaper的定义。
 *参数：p_eppSrc	使用打印纸。
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：PNT_SUCCESS表示成功,PNT_FAILD表示失败。
*/
BOMMADMDevControl.prototype.DispensePaperAsyn = function(json){
	return this.Ocx().DispensePaperAsyn(json.p_eppSrc,json.p_lTimeOut);
}

/**
 *long Flush(long p_lTimeOut);
 *功能：打印机调用PrintForm命令打印数据之前清除数据。
 *参数：p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：PNT_SUCCESS表示成功,PNT_FAILD表示失败。
*/
BOMMADMDevControl.prototype.Flush = function(json){
	return this.Ocx().Flush(json.p_lTimeOut);
}

/**
 *long FlushAsyn(long p_lTimeOut);
 *功能：Flush的异步版本，请参考Flush的定义。
 *参数：p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：PNT_SUCCESS表示成功,PNT_FAILD表示失败。
*/
BOMMADMDevControl.prototype.FlushAsyn = function(json){
	return this.Ocx().FlushAsyn(json.p_lTimeOut);
}

/**
 *long SetPowerSave(LPPTRPOWERSAVECONTROL p_lpPowerSaveControl;
, long p_lTimeOut);
 *功能：启动或关闭节电模式
 *参数：p_lpPowerSaveControl	typedef struct ptr_power_save_control
{
USHORT	usMaxPowerSaveRecoveryTime;
} PTRPOWERSAVECONTROL, *LPPTRPOWERSAVECONTROL;
usMaxPowerSaveRecoveryTime
规定了设备退出节电模式返回至正常工作状态的最大秒数。该设备在此限制内将设定到最大可能的节电模式。
 如果usMaxPowerSaveRecoveryTime设定为零，则设备将退出节电模式。

 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：PNT_SUCCESS表示成功,PNT_FAILD表示失败。
*/
BOMMADMDevControl.prototype.SetPowerSave = function(json){
	return this.Ocx().SetPowerSave(json.plpPowerSaveControl,json.p_lTimeOut);
}

/**
 *long SetPowerSaveAsyn(LPPTRPOWERSAVECONTROL p_lpPowerSaveControl;
, long p_lTimeOut);
 *功能：SetPowerSave的异步版本，请参考SetPowerSave的定义。
 *参数：p_lpPowerSaveControl	typedef struct ptr_power_save_control
{
USHORT	usMaxPowerSaveRecoveryTime;
} PTRPOWERSAVECONTROL, *LPPTRPOWERSAVECONTROL;
usMaxPowerSaveRecoveryTime
规定了设备退出节电模式返回至正常工作状态的最大秒数。该设备在此限制内将设定到最大可能的节电模式
 。如果usMaxPowerSaveRecoveryTime设定为零，则设备将退出节电模式。
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：PNT_SUCCESS表示成功,PNT_FAILD表示失败。
*/
BOMMADMDevControl.prototype.SetPowerSaveAsyn = function(json){
	return this.Ocx().SetPowerSaveAsyn(json.p_lpPowerSaveControl,json.p_lTimeOut);
}


/**
 *long SetSilentMode(long bSilent,long p_lTimeOut);
 *功能：支持静音模式的打印机(例如利盟激光打印机)具有的功能。
由于激光打印机在持续运转过程中散热能力减弱，随着机器温度升高会影响打印出纸的速度(速度不断下降)。
 为维持平稳的速度，可以设置打印机为静音模式；在这种模式下，打印机将以一种平稳的速度(速度相对较低)出纸。
 *参数：bSilent	是否为静音模式 1--静音模式 0—非静音模式
 *p_lTimeOut	超时时间，单位为ms；0表示永不超时
 *返回：PNT_SUCCESS表示成功,PNT_FAILD表示失败。
*/
BOMMADMDevControl.prototype.SetSilentMode = function(json){
	return this.Ocx().SetSilentMode(json.bSilent,json.p_lTimeOut);
}

/**
 *函数原型：long CancelPrintJob(long p_lTimeOut);
 *参数
 *p_lTimeOut	In	超时时间，单位为ms；0表示永不超时
 *返回值
 *PNT_SUCCESS表示成功,0
 *0PNT_FAILED表示失败,-1
 *WFS_ERR_DEV_NOT_READY表示设备尚未准备好或已超时。-13
*/
BOMMADMDevControl.prototype.CancelPrintJob = function(json){
	return this.Ocx().CancelPrintJob(json.p_lTimeOut);
}

/**
 * 打印完成事件
 */
BOMMADMDevControl.prototype.PaperPrinted = function(no, all){
	PaperPrinted(no, all);
}

/**
 * 打印机缺纸事件
 */
BOMMADMDevControl.prototype.PaperThreshold = function(status){
	PaperThreshold(status);
}

/**
 * 打印机缺墨事件
 */
BOMMADMDevControl.prototype.TonerThreshold = function(status){
	TonerThreshold(status);
}

$("#ocxContent").append('<OBJECT id="bommADMDevControl_ctl" classid="clsid:0B5DE387-FE26-41D1-B7EE-AF9C167F17B9" width="100" height="100"></OBJECT>');
var bommADMDevControl = new BOMMADMDevControl("bommADMDevControl_ctl"); //全局变量